Entertainment and video game software applications have evolved in ways unforeseen by early pioneers in the field. While early video games typically provided static content including graphics and sound, modern video games may be dynamically configured to include new content only limited by the abilities of game and content developers. In addition, new content may be generated not only by professional game developers but also game enthusiasts who wish to share their content with other gamers. This provides a very rich creative environment for game development.
Thus, when a user purchases a game, the user typically relies on the assumption that new content will become available over time for a title. This scenario is mutually beneficial for the user and the game developers. For the user it insures that the lifetime of the game will be virtually unlimited as new content will become available over time. For game developers, a single title provides a sustained revenue stream if users are willing to pay for new content created for the title. Thus, the ability to provide dynamic content over time to users makes users more willing to buy and thus developers more invested in developing complex and often expensive titles.
Nonetheless, dynamic content availability creates a number of technical challenges from a development and information technology perspective. As content may be created dynamically, a game is always under development, multiple schema versions of content may coexist at a single point in time. Typically a content server is configured to allow a game development team to upload, modify and download game content during the development phase.
This scenario raises a number of challenges for efficient game development. With known methods, game development of a new content element or feature may be very slow and require the developer to generate significant amounts of code unrelated to the substantive game feature they are developing. In addition, traditional methods do not allow for schema versioning. Thus, an alternative method is required.